A common operation arising in the field of electronic data processing is the operation known as multiply-accumulate. This operation is particularly common in areas involving signal processing and other fields where correlations of functions must be evaluated. A multiply-accumulate operation typically involves a series of pairs of numbers. The product of the two numbers composing each pair is formed and all of the products thus formed are summed.
One example of a multiply-accumulate operation is the evaluation of the inner product of two vectors. If X and Y are vectors in a space having T orthogonal dimensions, the inner product Z, is defined to be ##EQU1## where X.sub.i is the ith component of X and Y.sub.i is the ith component of Y.
On a general purpose digital computer multiply-accumulate operations are typically performed by producing each product and summing the results. If a large number of products are required to be performed, the time consumed in such an operation may be considerable, due to the inherently slow nature of computer multiplication.